package cn.legend.travel.admin.authorize.dao.persist.repository;

import cn.legend.travel.admin.authorize.pojo.entity.User;
import cn.legend.travel.admin.authorize.pojo.param.UserAddNewParam;
import cn.legend.travel.admin.authorize.pojo.param.UserUpdateParam;
import cn.legend.travel.admin.authorize.pojo.vo.UserLoginInfoVO;
import cn.legend.travel.admin.authorize.pojo.vo.UserStandardVO;
import cn.legend.travel.common.consts.cache.LoginCacheConst;
import cn.legend.travel.common.pojo.vo.PageData;

import java.util.List;

public interface IUserRepository extends LoginCacheConst {

    PageData<UserStandardVO> getUserList(Integer pageNum, Integer pageSize);

    int addNew(UserAddNewParam param);

    int update(UserUpdateParam param);

    int update(User user);

    int deleteById(Long id);

    UserLoginInfoVO getByUsername(String username);

    int updateLastLogin(Long id, int loginCount);

    User getById(Long id);

    List<User> getByRoleId(Long roleId);
}
